import { SwitchEnum } from '@/store/enums/SwitchEnum';
import { SrcTypeEnum } from '@/store/enums/SrcTypeEnum';
import PropEnum from '@/store/enums/PropEnum';

const { dataType } = PropEnum;

const sys_search_type = [
  { 'label': '精确', 'value': '0', 'elTagType': '' },
  { 'label': '模糊', 'value': '1', 'elTagType': '' },
  { 'label': '右模糊', 'value': '2', 'elTagType': '' },
  { 'label': '左模糊', 'value': '3', 'elTagType': '' },
  { 'label': '范围', 'value': '4', 'elTagType': '' },
];

// 必填类型
const not_nvl_type = [
  { 'label': '非必填', 'value': '0', 'elTagType': '' },
  { 'label': '必填', 'value': '1', 'elTagType': '' },
  { 'label': '申请必填', 'value': '2', 'elTagType': '' },
  { 'label': '变更必填', 'value': '3', 'elTagType': '' },
];
// 默认值类型
const default_type = [
  { 'label': '无', 'value': '0', 'elTagType': '' },
  { 'label': '普通常量', 'value': '1', 'elTagType': '' },
  { 'label': '系统常量', 'value': '2', 'elTagType': '' },
  { 'label': '表达式', 'value': '3', 'elTagType': '' },
];
// 前后缀类型
const fix_type = [
  { 'label': '无', 'value': '0', 'elTagType': '' },
  { 'label': '常量', 'value': '1', 'elTagType': '' },
  { 'label': '选择', 'value': '2', 'elTagType': '' },
];
// 初始化属性
const initPropData = () => ({
  uid: null,
  modelCode: '',
  code: '',
  name: '',
  dataType: dataType.STR.val, // 数据类型，字符A 数值B 日期C 文件D 字典prop_data_type
  viewType: 'X1', // 展示类型，只读X1 字典prop_view_type
  srcType: SrcTypeEnum.INPUT, // 数据来源，手工输入 字典prop_source_type
  quickSw: SwitchEnum.CLOSE, // 快捷搜索，否
  advanceSw: SwitchEnum.CLOSE, // 高级搜索，否
  viewSw: SwitchEnum.CLOSE, // 列表显示，否
  colNum: 20, // 排序
  linkCode: null, // 引用模型
  hideCode: null, // 隐藏编码，后台生成
  colCode: null, // 真实字段，后台分配
  editFlag: '0', // 修改标记;0可删除可编辑 1不可删除可编辑 3不可编辑不可删除 >4只读
  vipLevel: '0', // 访问，无权限限制，跟随模型
  remark: null, // 备注
  swt: {
    fullSw: SwitchEnum.CLOSE, // 全文检索，否
    shortSw: SwitchEnum.CLOSE, // 短描述，否
    longSw: SwitchEnum.CLOSE, // 长描述，否
  },
  ext: {
    searchType: '0', // 搜索类型，sys_search_type
    maxLen: null, // 最大长度
    minLen: null, // 最小长度
    decLen: null, // 小数位数
    maxNum: null, // 最大值
    minNum: null, // 最小值
    defaultType: '0', // 默认值类型
    defaultExp: null, // 默认值表达式
    notNvl: SwitchEnum.CLOSE, // 是否必填，0否，not_nvl_type
    filterExp: null, // 过滤表达式，弹窗选择使用
    prefixType: '0', // 前缀类型, fix_type
    prefixData: null, // 前缀取值，常量 或者 选择数组
    suffixType: '0', // 后缀类型, fix_type
    suffixData: null, // 后缀取值，常量 或者 选择数组
    linkProp: null, // 引用属性，引用模型的显示属性
    linkData: null, // 携带属性，引用模型的显示属性，数组
    selectData: null, // 数据来源：自定义，选值列表
  }
});

export default {
  SEARCH_TYPE: sys_search_type,
  initPropData: initPropData,
  NOT_NVL_TYPE: not_nvl_type,
  DEFAULT_TYPE: default_type,
  FIX_TYPE: fix_type,
}